Encapsulation Example: Data Hiding এবং Getter/Setter মেথডের মাধ্যমে Access

Java OOPs (Object-Oriented Programming) Examples - জাভা উদাহরন (Java  Examples) - Java Technologies

358

Encapsulation (এনক্যাপসুলেশন) হল একটি অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং (OOP) কনসেপ্ট যেখানে ক্লাসের ভেরিয়েবলগুলিকে private ঘোষণা করা হয় এবং তাদের মান নির্ধারণ বা পুনরুদ্ধার করার জন্য getter এবং setter মেথড তৈরি করা হয়। এটি data hiding এর একটি অংশ, যেখানে ক্লাসের অভ্যন্তরীণ ডেটা বাইরে থেকে সরাসরি অ্যাক্সেস করা সম্ভব হয় না। এই পদ্ধতি ডেটাকে সুরক্ষিত এবং নিয়ন্ত্রিত উপায়ে অ্যাক্সেস করতে সাহায্য করে।

Encapsulation এর সুবিধা:

  1. Data Hiding: ডেটাকে অ্যাক্সেস করার জন্য প্রপার মেথড ব্যবহার করা হয়, তাই বাইরের কোড থেকে সরাসরি ডেটা পরিবর্তন করা যায় না।
  2. Control Over Data: getter এবং setter মেথড ব্যবহার করে ডেটার মান নিয়ন্ত্রণ করা যায়, যেমন একটি ভেরিয়েবলের মান সেট করার আগে ভ্যালিডেশন চেক করা।
  3. Easier Maintenance: কোড পরিবর্তন করার সময় বাহ্যিক কোডের উপর প্রভাব পড়বে না।

উদাহরণ: Encapsulation এবং Getter/Setter মেথড

// Class that demonstrates Encapsulation
public class Person {
    // Private fields (Data Hiding)
    private String name;
    private int age;

    // Getter method for name
    public String getName() {
        return name;
    }

    // Setter method for name
    public void setName(String name) {
        this.name = name;
    }

    // Getter method for age
    public int getAge() {
        return age;
    }

    // Setter method for age
    public void setAge(int age) {
        if (age > 0) {  // Validation check
            this.age = age;
        } else {
            System.out.println("Age cannot be negative or zero.");
        }
    }

    // Method to display Person's details
    public void displayPersonInfo() {
        System.out.println("Name: " + name);
        System.out.println("Age: " + age);
    }
}

public class EncapsulationExample {
    public static void main(String[] args) {
        // Create a Person object
        Person person = new Person();

        // Using setter methods to set values
        person.setName("John Doe");
        person.setAge(30);

        // Using getter methods to access values
        System.out.println("Name: " + person.getName());
        System.out.println("Age: " + person.getAge());

        // Displaying the Person info using a method
        person.displayPersonInfo();

        // Invalid age (negative value) - Demonstrates validation in setter
        person.setAge(-5);  // This will not change the age as it's invalid
    }
}

কোডের ব্যাখ্যা:

  1. Private Fields: name এবং age ফিল্ডগুলো private হিসেবে ডিক্লেয়ার করা হয়েছে, যা বাইরের কোড থেকে সরাসরি অ্যাক্সেস করা যাবে না। এটি data hiding নিশ্চিত করে।
  2. Getter Methods: getName() এবং getAge() মেথডগুলো ব্যবহার করে আমরা name এবং age ফিল্ডের মান পেতে পারি। এই মেথডগুলি public হওয়ায় বাইরের কোড থেকে ডেটা অ্যাক্সেস করা সম্ভব হয়, তবে direct access করা যায় না।
  3. Setter Methods: setName() এবং setAge() মেথডগুলো ব্যবহার করে name এবং age ফিল্ডের মান সেট করা যায়। setAge() মেথডে একটি validation চেক রয়েছে, যা নিশ্চিত করে যে বয়স নেতিবাচক বা শূন্য হতে পারে না।
  4. Data Validation: setAge() মেথডের মধ্যে validation চেক করা হয়েছে, যাতে কোনো অবৈধ মান (যেমন নেতিবাচক বয়স) সেট করা না হয়।

আউটপুট:

Name: John Doe
Age: 30
Name: John Doe
Age: 30
Name: John Doe
Age: 30
Age cannot be negative or zero.
  • Encapsulation হল একটি খুবই গুরুত্বপূর্ণ OOP ধারণা, যা ডেটা গোপনীয়তা (data hiding) এবং নিয়ন্ত্রণ (control) নিশ্চিত করতে সাহায্য করে।
  • Getter/Setter মেথড ব্যবহার করে আপনি ক্লাসের private ভেরিয়েবলগুলোর মান অ্যাক্সেস এবং সেট করতে পারেন। এই মেথডগুলির মাধ্যমে ডেটার উপর সম্পূর্ণ নিয়ন্ত্রণ পাওয়া যায়, যেমন ডেটা ভ্যালিডেশন।
  • এই পদ্ধতি আপনার প্রোগ্রামকে নিরাপদ এবং রক্ষণাবেক্ষণের জন্য সহজ করে তোলে।
Content added By
Promotion

Are you sure to start over?

Loading...